package com.example.tests;

import static org.hamcrest.Matchers.equalTo;
import static org.junit.Assert.assertThat;
import com.example.utils.SortedListOf;

import java.util.Random;

import org.testng.annotations.Test;

public class ContactRemovalTests extends TestBase {
	
	@Test
	
	public void deleteSomeContact() {
		//save old state
		SortedListOf<ContactData> oldList = app.getContactHelper().getContacts();
        
        Random rnd = new Random();
        int index = oldList.size()-1;
        if (index > 0) {
        	index = rnd.nextInt(index);
        }
        
        // actions
		app.getContactHelper().deleteContact(index);		
		
		//save new state
		SortedListOf<ContactData> newList = app.getContactHelper().getContacts();
        
        // compare states  
        // 	compare internal states 
        assertThat(newList, equalTo(oldList.without(index)));
        //	compare cashed contacts and UI contacts 
        assertThat(newList, equalTo(app.getContactHelper().getUiContacts()));
	}

}
